COMP201 Data Structures and Algorithms

Postgraduate course, Pak-Austria Fachhochschule: Institute of Applied Sciences and Technology, Sino-Pak Center for Artificial Intelligence, 2023

Course Description: Data structures and algorithms is one of the core courses in computing and focuses on efficient storage of data in memory to facilitate their subsequent processing. It mainly covers elementary data structures and associated algorithms to manipulate them. Topics include lists, stacks, queues, arrays, trees, graphs, sorting and searching. This course offers the students a mixture of theoretical knowledge and practical experience. This includes sequential storage (lists, queues, and stacks), hierarchical storage (trees), and association/adjacency storage (graphs). Students will also become familiar with algorithm analysis and design techniques.

Course Objectives:

The course objective of this course is to enable students understand basic concepts of data structures and algorithms, and its successful completion should build students essential skills to implement the efficient data structure and algorithms in real world environment.

Plan:

Week 1 Lecture-1: Introduction to course Lecture-2: Abstract Data Type Lecture-3: Algorithms Week 2 Lecture-4: Complexity Analysis 1 Lecture-5: Complexity Analysis 2 Lecture-6: Complexity Analysis 3 Week 3 Lecture-7: Recursive Algorithms Lecture-8: Searching Algorithms (sorted and unsorted array) Lecture-9: Searching Algorithms (Linear and Binary Search) Week 4 Lecture-10: Sorting Algorithms (Selection) Lecture-11: Sorting Algorithms (Insertion) Lecture-12: Sorting Algorithms (Merge) Week 5 Lecture-13: Sorting Algorithms (quick) Lecture-14: Sorting Algorithms (bubble) Lecture-15: Sorting Algorithms (Heap) Week 6 Lecture-16: Sorting Algorithms (Shell) Lecture-17: Sorting Algorithms (Radix) Lecture-18: Sorting Algorithms (bucket) Week 7 Lecture-19: Singly Linked list Lecture-20: Doubly Linked list Lecture-21: Circular Linked List Week 8 Lecture-22: Queue Lecture-23: Dequeuer Lecture-24: Priority queues (linked and array implementations of queues) Week 9 Mid Semester Exam (MSE) Week 10 Lecture-25: “Technical Seminar by an Industrial Personnel” – Lecture-26: Stack LIFO Lecture-27: Stack FILO Week 11 Lecture-28: Hashing and indexing Lecture-29: Hashing and indexing Lecture-30: Open addressing and chaining Week 12 Lecture-28: trees and tree traversals Lecture-29: Binary Tree Lecture-30: Binary Search Tree Week 13 Lecture-34: Heap Lecture-35: Heap Min Lecture-36: Heap Max Week 14 Lecture-37: M-way tress, balanced trees Lecture-38: Graphs Lecture-39: Breath First Search Week 15 Lecture-40: Depth Frist Search Lecture-41: Minimum Spanning Tree Lecture-42: Week 16 Lecture-43: Shortest Path Lecture-44: Dijkstra’s algorithm Lecture-45: Bellman–Ford algorithm Week 17 Lecture-46: Semester Project Presentations Lecture-47: Semester Project Presentations Lecture-48: Revision Week 18 End Semester Exam

Books:

Textbook: Data Structures and Algorithm Analysis in C++ (Fourth Edition), Mark Allen Weiss, Published by Addison-Wesley, 2013, ISBN: 978-0132847377

Reference Books:

  1. Data Structures and Algorithms in C++, 4th Edition, Adam Drozdek, 2013 Cengage Learning
  2. Data Structures and Algorithms in Python, 1st Edition, Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser, 2013, Wiley Publishing, ISBN:978-1-118-29027-9